package com.fbty.mt.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.springframework.core.io.ClassPathResource;

import com.fbty.mt.domain.MailSenderInfo;
import com.fbty.mt.domain.User;

public class EmailUtil {
	public static Boolean sendEmail(String title,String code,String email) {
		 Properties prop = new Properties();   
		 ClassPathResource cr = new ClassPathResource("/conf/email.properties");//会重新加载spring框架
//		  InputStream in = Object.class.getResourceAsStream("/conf/email.properties");  
		  try {
			prop.load(cr.getInputStream());
			String formEmail = prop.getProperty("formEmail");
			String pwd = prop.getProperty("pwd");
			String toEmail = email;
			String host = prop.getProperty("host");
			String port = prop.getProperty("port");
			
			if(formEmail == null && "".equals(formEmail)) {
				return false;
			}
			if(pwd == null && "".equals(pwd)) {
				return false;
			}
			if(toEmail == null && "".equals(toEmail)) {
				return false;
			}
			if(host == null && "".equals(host)) {
				return false;
			}
			if(port == null && "".equals(port)) {
				return false;
			}
			  MailSenderInfo mailInfo = new MailSenderInfo();   
		      mailInfo.setMailServerHost(host);   
		      mailInfo.setMailServerPort(port);   
		      mailInfo.setValidate(true);   
		      mailInfo.setUserName(formEmail);   
		      mailInfo.setPassword(pwd);//您的邮箱密码   
		      mailInfo.setFromAddress(formEmail);   
		      mailInfo.setToAddress(toEmail);   
		      mailInfo.setSubject(title);   
		      mailInfo.setContent(code);   
		        //这个类主要来发送邮件  
		      SimpleMailSender sms = new SimpleMailSender();  
//	          sms.sendTextMail(mailInfo);//发送文体格式   
	          sms.sendHtmlMail(mailInfo);//发送html格式 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return true;
	}
	
	public static Boolean sendEmailCode(String title,String code,String email) {
		 Properties prop = new Properties();   
		 ClassPathResource cr = new ClassPathResource("/conf/email.properties");//会重新加载spring框架
//		  InputStream in = Object.class.getResourceAsStream("/conf/email.properties");  
		  try {
			prop.load(cr.getInputStream());
			String formEmail = prop.getProperty("formEmail");
			String pwd = prop.getProperty("pwd");
			String toEmail = email;
			String host = prop.getProperty("host");
			String port = prop.getProperty("port");
			
			if(formEmail == null && "".equals(formEmail)) {
				return false;
			}
			if(pwd == null && "".equals(pwd)) {
				return false;
			}
			if(toEmail == null && "".equals(toEmail)) {
				return false;
			}
			if(host == null && "".equals(host)) {
				return false;
			}
			if(port == null && "".equals(port)) {
				return false;
			}
			  MailSenderInfo mailInfo = new MailSenderInfo();   
		      mailInfo.setMailServerHost(host);   
		      mailInfo.setMailServerPort(port);   
		      mailInfo.setValidate(true);   
		      mailInfo.setUserName(formEmail);   
		      mailInfo.setPassword(pwd);//您的邮箱密码   
		      mailInfo.setFromAddress(formEmail);   
		      mailInfo.setToAddress(toEmail);   
		      mailInfo.setSubject(title);   
		      mailInfo.setContent(code); 
		        //这个类主要来发送邮件  
		      SimpleMailSender sms = new SimpleMailSender();  
	          sms.sendTextMail(mailInfo);//发送文体格式   
//	          sms.sendHtmlMail(mailInfo);//发送html格式 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return true;
	}
	
	
	
	public static void main(String[] args){ 
		  Properties prop = new Properties();   
		 
		  InputStream in = Object.class.getResourceAsStream("/conf/email.properties");   
		  try {
			prop.load(in);
			String formEmail = prop.getProperty("formEmail");
			String pwd = prop.getProperty("pwd");
			String toEmail = prop.getProperty("toEmail");
			String host = prop.getProperty("host");
			String port = prop.getProperty("port");
		  } catch (Exception e) {
			// TODO: handle exception
		}
		
		
			         //这个类主要是设置邮件  
      MailSenderInfo mailInfo = new MailSenderInfo();   
      mailInfo.setMailServerHost("smtp.qq.com");   
      mailInfo.setMailServerPort("25");   
      mailInfo.setValidate(true);   
      mailInfo.setUserName("577001560@qq.com");   
      mailInfo.setPassword("windowsjava");//您的邮箱密码   
      mailInfo.setFromAddress("577001560@qq.com");   
      mailInfo.setToAddress("445756552@qq.com");   
      mailInfo.setSubject("设置邮箱标题");   
      mailInfo.setContent("设置邮箱内容");   
        //这个类主要来发送邮件  
      SimpleMailSender sms = new SimpleMailSender();  
          sms.sendTextMail(mailInfo);//发送文体格式   
          sms.sendHtmlMail(mailInfo);//发送html格式  
    }  
		
		
		
		
		
		
//		try  { 
//			// 创建 properties ，里面包含了发送邮件服务器的地址。 
//			Properties mailProps = new Properties(); 
//			mailProps.put("mail.smtp.host", "192.0.0.1"); //"mail.smtp.host"随便叫啥都行，"192.0.0.1"必须是真实可用的。
//			// 创建 session 
//			Session mailSession = Session.getDefaultInstance(mailProps); 
//			// 创建 邮件的message，message对象包含了邮件众多有的部件，都是封装成了set方法去设置的 
//			MimeMessage message = new MimeMessage(mailSession); 
//			// 设置发信人 
//			message.setFrom(new InternetAddress( "chqn@cmmail.com")); 
//			//收信人 
//			message.setRecipient(Message.RecipientType.TO, new InternetAddress("445756552@qq.com")); 
//			 // 邮件标题 
//			message.setSubject("I love you"); //haha，吓唬人 
//			// 创建 Mimemultipart，这是包含多个附件是必须创建的。如果只有一个内容，没有附件，可以直接用message.setText(String str) 
//				//去写信的内容，比较方便。附件等于是要创建多个内容，往下看更清晰。 
//			MimeMultipart multi = new MimeMultipart(); 
//			// 创建 BodyPart，主要作用是将以后创建的n个内容加入MimeMultipart.也就是可以发n个附件。我这里有2个BodyPart. 
//			BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。 
//	        textBodyPart.setText("详情见附件"); 
//	        // 压入第一个BodyPart到MimeMultipart对象中。 
//	        multi.addBodyPart(textBodyPart); 
//	        // 创建第二个BodyPart,是一个FileDAtaSource 
//	        FileDataSource fds = new FileDataSource("c:\\myattachment.txt"); //必须存在的文档，否则throw异常。 
//	        BodyPart fileBodyPart = new MimeBodyPart(); //第二个BodyPart 
//	        fileBodyPart.setDataHandler(new DataHandler(fds)); //字符流形式装入文件 
//	        fileBodyPart.setFileName("report.xls"); //设置文件名，可以不是原来的文件名。 
//			/* 
//			* 以下是我用另一种方式写入附件，但不成功，附件总是0K字节。请高手点解，以上的方式我是参照demo的。 
//			* 
//			* FileInputStream in = new FileInputSteam("c:\myattachment.txt"); 
//			* BodyPart fileBodyPart = new MimeBodyPart(in); 
//			* fileBodyPart.setFileName("report.xls"); //奶奶的折腾我2天，搞不定。 
//			** 
//			*/
//			//不讲了，同第一个BodyPart. 
//			multi.addBodyPart(fileBodyPart);
//			// MimeMultPart作为Content加入message
//			message.setContent(multi); 
//			// 所有以上的工作必须保存。
//			message.saveChanges(); 
//			 // 发送，利用Transport类，它是SMTP的邮件发送协议， 
//			Transport.send(message); 
//			} catch (Exception exc)  { 
//				exc.printStackTrace(); 
//			} 
//		} 

}
